package org.darkforest.common.services;

import org.darkforest.enums.ProxyApplyStageEnum;
import org.darkforest.model.Proxy;
import org.darkforest.vo.ProxyApproveVO;
import org.darkforest.vo.StatProxyVo;
import org.darkforest.vo.SubMemberInfo;
import org.darkforest.vo.SubProxyInfo;

/**
 * Created by Libing on 2015/5/23.
 */
public interface ProxyManagerService {
    /**
     * 查询代理商申请详情
     * @param proxyId
     * @return
     */
    ProxyApproveVO ApproveProxyDetail(Integer proxyId);

    /**
     * 增加代理商，需要查询获取到team_id并添加，因此单列出一个方法
     * @param proxy
     * @return
     */
    public Proxy addProxy(Proxy proxy);

    /**
     * 更新申请阶段，选择商品时无法根据条件判断，因此添加标志字段
     * @param proxyId
     * @param stage
     * @return
     */
    public int updateStage(Integer proxyId, ProxyApplyStageEnum stage);

    /**
     * 根据用户获取代理商信息
     * @param memberId
     * @return
     */
    public Proxy getProxyByMemId(Integer memberId);

    /**
     * 获取统计数据
     * @param proxy_id
     * @param team_proxy_id
     * @return
     */
    public StatProxyVo getStatInfo(Integer proxy_id, Integer team_proxy_id, Integer memberId);

    public SubProxyInfo getProxyList(SubProxyInfo page);

    public SubMemberInfo getSubMemberList(SubMemberInfo memberInfoPage);

    public void aduitProxy(Integer memberId, Proxy proxy);
}
